camera HAL起着承上启下的作用。在camera HAL层实现中,芯片厂商一般将camera HAL层的实现分为两层:interface层和OEM层。OEM层为下层,它用于屏蔽不同的camera硬件。不同的camera硬件必须支持OEM层提供的对外接口。Interface层为上层,它调用OEM层的对外接口来实现camera HAL所定义的接口。对于Interface层,它并不知道底层camera硬件到底是哪一个版本。同时,interface层完成了屏蔽camera HAL版本的作用。对于OEM层,它也不知道上层是哪一个camera HAL版本,及android版本。两层分离架构,可以很容易地实现不同芯片支持同一个android版本和同一款芯片支持不同android版本(前提条件是该款芯片能够支持这些android版本的各个需求)。
HAL1與HAL3在camera pipeline的实现上面有非常大的改动。(HAL v2是過渡版本,某時起不再支持)
APPlication層發出的request是socket的non-blocking mode,按照被接收到的順序來處理
我只聽過Process, Thread,但這個協程似乎跟yield功能有關
callback: 透過傳遞該指標來達成「將函數變為參數」這一目的。
大多數碰上異步問題,解決的辦法基本上都是 callback。
Coroutine的好處是可以不用自己控制 Thread 的使用
Coroutine 的實作概念是個有限狀態機
Coroutine 本質上還是 callback,只是 compiler 幫你把他寫掉了(Kotlin語言,google 推廣)
協程 - wiki
[重新理解C++] 從 function object 理解惰性編譯
何謂callback function?
Kotlin Coroutines 幕後那一兩件事